package com.servlet;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
 * 创建Servlet时  类名以Servlet结尾
 * 实现Servlet接口的方式
 */
public class Demo01Servlet implements Servlet {
    /**
     * 对Servlet初始化时 执行的方法
     *
     * @param config
     * @throws ServletException
     */
    @Override
    public void init(ServletConfig config) throws ServletException {
        //1.获取在web.xml中配置的别名 servlet-name
        System.out.println(config.getServletName());
        //2.获取在web.xml中配置的 init-param
        System.out.println(config.getInitParameter("datasource"));
        //3.获取到域对象之一 ServletContext
        System.out.println(config.getServletContext());
        System.out.println("Demo01Servlet 被初始化");
    }

    /**
     * 获取该Servlet相关的配置信息
     *
     * @return
     */
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    /**
     * 重要：接收来自浏览器的请求 并且处理响应
     *
     * @param req 请求
     * @param res 响应
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("Hello World!");
        HttpServletRequest request = (HttpServletRequest) req;
        //获取当前的请求方式 GET POST
        String method = request.getMethod();
        System.out.println("当前的请求方式是：" + method);
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    /**
     * 当Servlet实例被摧毁的时候
     * 当前项目被正常关闭时，会执行该方法
     */
    @Override
    public void destroy() {
        System.out.println("Demo01Servlet 被摧毁");
    }
}
